#!/bin/bash
#sed 's/<<[^>]*>>//g' <<< "a a a<<jotain tekstiä>>bbb<<jotain toista tekstiä>>c c c"
#sed 's/<<[^>]*\n*>>//g' haku
cat haku | sed 's/<</\n<</g;s/>>.*/>>\n/g' | sed -n '/<</,/>>/p' | sed '/^$/d' # negaatio
#cat haku | sed 's/<</\n<</g;s/>>/>>\n/g' | sed -e '/<</,/>>/d'                # tämä on paras 
#cat haku | sed 's/<</\n<</g' > /tmp/delme
#cat /tmp/delme | sed -i's/>>/>>\n\n/g' 
#cat /tmp/delme | sed -e '/<</,/>>/!d'
read

function haku () {
# mikäli tyhjien rivien tulostuminen halutaan estää lisätään "löytöloitsujen" perään: | awk 'NF'
# tagit voivat olla samalla rivillä tai niiden välillä voi olla monia rivejä; kuitenkin tag1 aina ennen tag2:hta 
cat $tiedosto | sed "s/$tag1/222222\n$tag1/g" | sed "s/$tag2/$tag2\n111111/g" | awk '/111111/,/222222+/'| sed 's/111111//g' | sed 's/222222//g'
 }

[[ -f ~/.haku ]] && read tiedosto tag1 tag2 tag <<< $(cat ~/\.haku)
read -ep "minkänimisestä tiedostosta etsitään: " -i " $tiedosto" tiedosto
read -ep "mistä sanasta haku alkaa: " -i " $tag1" tag1
read -ep "mihin sanaan haku loppuu: " -i " $tag2" tag2
echo $tiedosto $tag1 $tag2 > ~/.haku
echo

time haku
# 125:ssä on keskiarvoistusta toimintaajoista # 173 toimii

